package com.qr.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;

@Controller
@RequestMapping("/anno")
public class AnnoController {
    /**
     * 加上一个字符串,这个字符串的名字必须叫name,使用username是接收不到的
     * 因为anno.jsp中传过来的是name这个值
     */
    @RequestMapping("/testRequestParam")
    public String testRequestParam(String username) {
        System.out.println("执行了...");
        System.out.println(username);
        return "success";
    }

    /**
     * 获取请求路径中的name属性的值
     * 并且封装给方法中的String参数
     */
    @RequestMapping("/testRequestParam1")
    public String testRequestParam1(@RequestParam(name="name") String username){
        //这个注解用来修饰当前你这个方法的参数
        System.out.println("执行了...");
        System.out.println(username);
        return "success";
    }


    // 获取到请求体的内容
    @RequestMapping("/testRequestBody")
    public String testRequestBody(@RequestBody String body){
        System.out.println("执行了...");
        System.out.println(body);
        return "success";
    }


    @RequestMapping(value="/testPathVariable/{sid}")
    public String testPathVariable(@PathVariable(name="sid") String id){
        System.out.println("执行了...");
        System.out.println(id);
        return "success";
    }

    // 获取请求头的值
    @RequestMapping(value="/testRequestHeader")
    public String testRequestHeader(@RequestHeader(value="Accept") String header) throws IOException {
        System.out.println("执行了...");
        System.out.println(header);
        return "success";
    }


    // 获取Cookie的值,将JSESSIONID中的值拿到赋值给方法中的String
    @RequestMapping(value="/testCookieValue")
    public String testCookieValue(@CookieValue(value="JSESSIONID") String cookieValue){
        System.out.println("执行了...");
        System.out.println(cookieValue);
        return "success";
    }

}